import router from '../router'
import store from '../store/index.js';
import Global from '../tools/global.js'; // 引入global.js
import { Message } from 'element-ui';

// 没有 sessionStorage，跳转首页，资产页面从二维码进入，无需 token
if (is_empty(sessionStorage.getItem('token')) && window.location.pathname.indexOf('/asset-h5') < 0) {
    Message.error("请先登录");
    
    setTimeout(() => {
         window.location.href = sessionStorage.getItem('protocol')+'://'+sessionStorage.getItem('host')
    }, 2000)
}

// 页面刷新初始化数据
if (is_empty(store.getters.isCheckToken)) {
    //根据sessionStorage获取路由数据
    router.options.routes[3].children = !is_empty(sessionStorage.getItem('route_str_back')) ? JSON.parse(sessionStorage.getItem('route_str_back')) : [];
    //动态添加路由
    router.addRoutes(router.options.routes);

    //根据sessionStorage获取路由数据
    store.commit('SET_USERINFO', !is_empty(sessionStorage.getItem('user_info_str')) ? JSON.parse(sessionStorage.getItem('user_info_str')) : {});
    //设置全局用户id
    Global.user_id = !is_empty(sessionStorage.getItem('user_info_str')) ? JSON.parse(sessionStorage.getItem('user_info_str')).id : 0;
    Global.role_id = !is_empty(sessionStorage.getItem('user_info_str')) ? JSON.parse(sessionStorage.getItem('user_info_str')).role : [];
    Global.user_name = !is_empty(sessionStorage.getItem('user_info_str')) ? JSON.parse(sessionStorage.getItem('user_info_str')).name : '';

}
//路由钩子
router.beforeEach((to, from, next) => {
    if ( to.name != 'login' ) {
        //定义左侧菜单栏
        var letMenuNav = [];
        //分割url
        var pathSplit = to.fullPath.split('/');
        //获取左侧菜单
        if (!is_empty(router.options.routes[3].children) && pathSplit[1] != 'login' && pathSplit[1] != 'home') {

            var sys_column = getOneColumn(router.options.routes[3].children, 'authName');

            var inx = sys_column.indexOf(pathSplit[1]);

            if (!is_empty(pathSplit[1]) && inx > -1) {
                letMenuNav = deep_clone(router.options.routes[3].children[inx]);
            }

        }
        //保存左侧菜单
        store.commit('SET_LEFTMENUNAV', letMenuNav);
        store.commit('UPDATE_ISCHECKTOKEN', pathSplit[1])
    }

    next()

})
router.afterEach(transition => {

});